package com.brightgenerous.niconama02.project.madokamagica;

import java.net.MalformedURLException;
import java.net.URL;

import com.brightgenerous.niconama02.stage.Audience;
import com.brightgenerous.niconama02.stage.Stage;

/**
 * <p>
 * まどか☆マギカ(舞台)
 * </p>
 * 
 * @author brigen
 */
class MadokamagicaStage extends Stage {

	/** 役者さん 鹿目まどか役 */
	private Actor01Madoka p_madoka;

	/** 役者さん 暁美ほむら役 */
	private Actor02Homura p_homura;

	/** 役者さん 美樹さやか役 */
	private Actor03Sayaka p_sayaka;

	/** 役者さん 巴マミ役 */
	private Actor04Mami p_mami;

	/** 役者さん キュゥべえ役 */
	private Actor05QB p_qB;

	/**
	 * <p>
	 * [constructor]
	 * </p>
	 * <p>
	 * まどか☆マギカ(舞台)をプロデュースできるのは{@link MadokamagicaStageProject}だけなので、<br>
	 * コンストラクタのスコープはパッケージ内のみ
	 * </p>
	 */
	MadokamagicaStage() {
	}

	/**
	 * 鹿目まどかの配役をする
	 *
	 * @param x_actor 鹿目まどかを演じる役者さん
	 */
	void setActor01(Actor01Madoka x_actor) {
		p_madoka = x_actor;
	}

	/**
	 * 暁美ほむらの配役をする
	 *
	 * @param x_actor 暁美ほむらを演じる役者さん
	 */
	void setActor02(Actor02Homura x_actor) {
		p_homura = x_actor;
	}

	/**
	 * 美樹さやかの配役をする
	 *
	 * @param x_actor 美樹さやかを演じる役者さん
	 */
	void setActor03(Actor03Sayaka x_actor) {
		p_sayaka = x_actor;
	}

	/**
	 * 巴マミの配役をする
	 *
	 * @param x_actor 巴マミを演じる役者さん
	 */
	void setActor04(Actor04Mami x_actor) {
		p_mami = x_actor;
	}

	/**
	 * キュゥべえ配役をする
	 *
	 * @param x_actor キュゥべえを演じる役者さん
	 */
	void setActor05(Actor05QB x_actor) {
		p_qB = x_actor;
	}

	/**
	 * <p>
	 * 公演を開始する
	 * </p>
	 * <p>
	 * このメソッドで行われる事が公演の内容で、実装は脚本に相当する
	 * </p>
	 * 
	 * @param x_audience 聴衆
	 */
	@Override
	public void start(Audience x_audience) {
		try {
			// 黒髪の少女
			chapter01(x_audience);
			// オープニング
			chapter02(x_audience);
			// 朝の団欒
			chapter03(x_audience);
			// 黒髪の転校生
			chapter04(x_audience);
			// 謎の忠告
			chapter05(x_audience);
			// 文武両道、才色兼備
			chapter06(x_audience);
			// 放課後のひととき
			chapter07(x_audience);
			// 誰かの呼ぶ声が
			chapter08(x_audience);
			// 不思議な出会い
			chapter09(x_audience);
			// 異形の花園
			chapter10(x_audience);
			// 僕の名前はキュゥべえ
			chapter11(x_audience);
			// エンディング
			chapter12(x_audience);
			// 次回予告
			chapter13(x_audience);
		} catch (MalformedURLException e) {
			throw new RuntimeException(e);
		}
	}

	/*
	 * 黒髪の少女
	 */
	private void chapter01(Audience x_audience) throws MalformedURLException {
		// - どこかの建物の中-
		x_audience.watch(createMoment(new URL("http://cdn-ak.f.st-hatena.com/images/fotolife/k/kaeru_geko/20110108/20110108222323.jpg"), "どこかの建物の中", "", p_madoka.actHesitate(), "まどか", ""));
		// まどか 走る
		x_audience.watch(createSceneMoment(new URL("http://img3.blogs.yahoo.co.jp/ybi/1/93/34/ject1013/folder/272257/img_272257_1294190_1?1299759349"), "まどか 走る", "タッタッタッ．．．"));
		// まどか 扉開く
		x_audience.watch(createSceneMoment(new URL("http://t0.gstatic.com/images?q=tbn:ANd9GcSwwwicuhjRgGRB7HR7iUMZB7ou3Igal8q5pnC7T78d5XjN9x1o"), "まどか 扉開く", "ガラッ"));
		// - どこかの外 -
		x_audience.watch(createMoment(new URL("http://hoku2.jp/blog/8.1%E5%A4%95%E7%84%BC%E3%81%91%E7%A9%BA%20001_25.jpg"), "どこかの外", "", null, "", ""));
		// なんかでかい物体 浮いてる
		x_audience.watch(createSceneMoment(new URL("http://pds.exblog.jp/pds/1/200911/21/96/c0226996_046344.jpg"), "なんかでかい物体 浮いてる", ""));
		// ほむら バトル中
		x_audience.watch(createMoment(new URL("http://game.watch.impress.co.jp/docs/20011019/cvs006.jpg"), "少女戦闘中", "どかーん", new URL("http://tn-skr3.smilevideo.jp/smile?i=13720118"), "ほむら", ""));
		// まどか「ひどい」
		x_audience.watch(createActorMoment(p_madoka.actSadness(), Actor01Madoka.NAME, p_madoka.speakC01W01()));
		// キュゥべえ「仕方ないよ、彼女一人では荷が重すぎた」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W01()));
		// キュゥべえ「でも、彼女も覚悟の上だ」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W02()));
		// ほむら 吹き飛ぶ
		x_audience.watch(createMoment(new URL("http://files.hangame.co.jp/blog/2009/63/bcdbc4/06/02/22229980/bcdbc4_1243919579745.jpg"), "少女吹飛中", "どーん", new URL("http://tn-skr3.smilevideo.jp/smile?i=13720118"), "ほむら", ""));
		// ほむら 何か叫ぶ
		x_audience.watch(createSceneMoment(new URL("http://img3.blogs.yahoo.co.jp/ybi/1/93/34/ject1013/folder/272257/img_272257_1294190_2?1299759349"), "少女絶叫中", "大声"));
		// まどか「そんな、あんまりだよ。こんなのってないよ！」
		x_audience.watch(createActorMoment(p_madoka.actSadness(), Actor01Madoka.NAME, p_madoka.speakC01W02()));
		// キュゥべえ「諦めたら、それまでだ」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W03()));
		// まどか「！」
		x_audience.watch(createActorMoment(p_madoka.actReact(), Actor01Madoka.NAME, p_madoka.speakC01W03()));
		// キュゥべえ「でも、君なら運命を変えられる」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W04()));
		// まどか「！！」
		x_audience.watch(createActorMoment(p_madoka.actReact(), Actor01Madoka.NAME, p_madoka.speakC01W04()));
		// キュゥべえ「避けようのない滅びも、嘆きも、全て君が覆せばいい」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W05()));
		// キュゥべえ「そのための力が、君には備わっているんだから」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W06()));
		// まどか「本当なの？」
		x_audience.watch(createActorMoment(p_madoka.actAsk(), Actor01Madoka.NAME, p_madoka.speakC01W05()));
		// まどか「私なんかでも、本当に何かできるの？」
		x_audience.watch(createActorMoment(p_madoka.actAsk(), Actor01Madoka.NAME, p_madoka.speakC01W06()));
		// まどか「こんな結末を変えられるの？」
		x_audience.watch(createActorMoment(p_madoka.actAsk(), Actor01Madoka.NAME, p_madoka.speakC01W07()));
		// キュゥべえ「勿論さ、だから僕と契約して・・・」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W07()));
		// キュゥべえ「魔法少女になってよ！」
		x_audience.watch(createActorMoment(p_qB.actNormal(), Actor05QB.NAME, p_qB.speakC01W08()));
		// まどか「．．．」
		x_audience.watch(createActorMoment(p_madoka.actHesitate(), Actor01Madoka.NAME, p_madoka.speakC01W08()));
		// まどか「（ｷﾘｯ」
		x_audience.watch(createActorMoment(p_madoka.actBrave(), Actor01Madoka.NAME, p_madoka.speakC01W09()));
		// - 寝室 -
		x_audience.watch(createMoment(new URL("http://www.sendkit-online.com/mt_images/kkts2205bbr-f_1.jpg"), "寝室", "", null, "", ""));
		// まどか「はぁ～夢オチ？」
		x_audience.watch(createActorMoment(p_madoka.actAnticlimax(), Actor01Madoka.NAME, p_madoka.speakC01W10()));
	}

	/*
	 * オープニング
	 */
	private void chapter02(Audience x_audience) {
	}

	/*
	 * 朝の団欒
	 */
	private void chapter03(Audience x_audience) {
	}

	/*
	 * 黒髪の転校生
	 */
	private void chapter04(Audience x_audience) {
	}

	/*
	 * 謎の忠告
	 */
	private void chapter05(Audience x_audience) {
	}

	/*
	 * 文武両道、才色兼備
	 */
	private void chapter06(Audience x_audience) {
	}

	/*
	 * 放課後のひととき
	 */
	private void chapter07(Audience x_audience) {
	}

	/*
	 * 誰かの呼ぶ声が
	 */
	private void chapter08(Audience x_audience) {
	}

	/*
	 * 不思議な出会い
	 */
	private void chapter09(Audience x_audience) {
	}

	/*
	 * 異形の花園
	 */
	private void chapter10(Audience x_audience) {
	}

	/*
	 * 僕の名前はキュゥべえ
	 */
	private void chapter11(Audience x_audience) {
	}

	/*
	 * エンディング
	 */
	private void chapter12(Audience x_audience) {
	}

	/*
	 * 次回予告
	 */
	private void chapter13(Audience x_audience) {
	}
}
